/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.edu.unipampa.recurso;

import br.edu.unipampa.cenario.Local;
import br.edu.unipampa.personagem.Personagem;

public class Cantil extends Pessoal {
    private Agua agua;
    
    private int limite;
    Agua ag = new Agua();
    
    public Cantil(){
        
    }
    public Cantil(String nome, int quantidade, int limite, String funcao){
        this.setNome(nome);
        this.setQuantidade(quantidade);
        this.setLimite(limite);
        this.setFuncao(funcao);
    }
        
    
    public String OpcoesItem(){
        return "1- Beber Agua 2- Procurar Agua 3- Verificar Cantil";
    }
    public String UtilizaOpcao(int escolhaOpcao,Personagem personagem, Local localAtual){
        String mensagem = "";
        switch (escolhaOpcao){
            case 1:
                mensagem = BeberAgua(personagem);
                break;
            case 2:
                mensagem = ProcuraAgua(localAtual);
                break;
            case 3:
                mensagem = VerificaCantil();
                break;
                
        }
        
        return mensagem;
    }

    public void RecebeAgua(Recurso aguaLocal) {
        if(!Cheio()){
            if(aguaLocal.getQuantidade() >= getLimite()){
                this.ag.setQuantidade(getLimite());
            }else{
                this.ag.setQuantidade(getQuantidade() + (aguaLocal.getQuantidade()));
            }
        }else{
            
        }
    }

    public String BeberAgua(Personagem personagem) {
        if(!Vazio()){
            ag.setQuantidade(ag.getQuantidade() - 1);
        personagem.setForca(personagem.getForca() + ag.getForcaGanha());
        return "Você bebeu agua e ganhou "+ ag.getForcaGanha()+" de força";
        }else{
            return "Seu Cantil esta vazio, não possui agua";
        }
    }

    public boolean Cheio() {
        if(this.ag.getQuantidade() == getLimite()){
            return true;
        }else{
            return false;
        }
        
    }

    public boolean Vazio() {
        if(ag.getQuantidade() == 0){
            return true;
        }else{
            return false;
        }
    }
    public String VerificaCantil(){
        
        return "A quantidade de agua presente no cantil é de "+ ag.getQuantidade() + " litros";
    }
    public String ProcuraAgua(Local l){
        if(l.getRecurso() instanceof Agua){
            RecebeAgua(l.getRecurso());
            return "Você achou água e colocou no cantil";
        }else{
            return "Você não achou água";
        }
    }

    public int getLimite() {
        return limite;
    }

    public void setLimite(int limite) {
        this.limite = limite;
    }

    /**
     * @return the agua
     */
    public Agua getAgua() {
        return agua;
    }

    /**
     * @param agua the agua to set
     */
    public void setAgua(Agua agua) {
        this.agua = agua;
    }

   
    
}
